﻿#pragma once
#include <Windows.h>

/**
 * @brief 钩子模块抽象接口
 *
 * 派生类示例：
 * class ExampleHook : public IHookModule {
 * public:
 *     bool Install() override {
 *         // 实现安装逻辑
 *         return true;
 *     }
 *
 *     bool Uninstall() override {
 *         // 实现卸载逻辑
 *         return true;
 *     }
 *
 *     const char* Name() const override {
 *         return "ExampleHook";
 *     }
 * };
 */
class IHookModule {
public:
    virtual bool Install() = 0; //必须实现的安装方法
    virtual bool Uninstall() = 0; // 必须实现的卸载方法
    virtual const char* Name() const = 0; // 返回钩子名称
    virtual ~IHookModule() = default; // 虚析构函数
};
